#define _CRT_SECURE_NO_WANINGS 1
#pragma warning(disable: 4996)
#include<stdio.h>
#include<stdlib.h>
//struct b
//{
//	int s;
//	int d;
//};
//
//int main()
//{
//	int* p = (int*)malloc(10 * sizeof(int));
//	if (NULL == p)
//	{
//		perror("malloc");
//		return 1;
//	}
//	for (int i = 0; i < 10; i++)
//	{
//		*(p + i) = i + 1;
//	}
//	for (int i = 0; i < 10; i++)
//	{
//		printf("%d ", *(p + i));
//	}
//	int* ptr = (int*)realloc(p, 400);
//	if (ptr == NULL)
//	{
//		perror("realloc");
//		return 1;
//	}
//	else
//	{
//		p = ptr;
//	}
//	for (int i = 10; i < 100; i++)
//	{
//		*(p + i) = i + 1;
//	}
//	printf("%d ", p[99]);
//	char* str1 = (char*)calloc(10, sizeof(char));
//	if (NULL == str1)
//	{
//		perror("calloc");
//		return 1;
//	}
//	char s[10] = "mazeqi";
//	for (int i = 0; i < 10; i++)
//	{
//		*(str1 + i) = *(s + i);
//	}
//	struct b* B = (struct b*)malloc(10);
//	if (NULL == B)
//	{
//		perror("malloc");
//		return 1;
//	}
//	B->d = 20;
//	B->s = 5;
//	printf("%d %d ", B->d, B->s);
//
//
//
//	printf(str1);
//	free(B);
//	B = NULL;
//	free(str1);
//	str1 = NULL;
//	free(p);
//	p = NULL;
//	return 0;
//}

int main()
{
	int** p = (int**)malloc(3 * sizeof(int*));
	for (int i = 0; i < 3; i++)
	{
		*(p + i) = (int*)malloc(15 * sizeof(int));
	}
	for (int i = 0; i < 3; i++)
	{
		for (int j = 0; j < 15; j++)
		{
			p[i][j] = i + j + 1;
			printf("%d\n", p[i][j]);
		}
	}
	for (int i = 0; i < 3; i++)
	{
		free(p[i]);
		p[i] = NULL;
	}
	free(p);
	p = NULL;
	return 0;
}